﻿// owner 蒋家伟

#pragma once

// std
#include <functional>
// jsdk
#include "TaskBase_home.h"

namespace jsdk
{
    class ITaskExectutable;
    using TaskTaskExectutableCreator = std::function<OwnerPtr<ITaskExectutable>(void)>;

    // 类别描述 : 任务描述与执行者注册方法，由TaskRegisterHelper调用，无需关心
    class TASKBASE_EXPORT TaskRegisterUtils
    {
        template<typename, typename> friend class TaskRegisterHelper;
    private:
        static void registerTaskExecutable(const std::wstring& taskDescrition, const TaskTaskExectutableCreator& taskExectutableCreator);
    };
} 
